package com.xxy.sort;

import java.util.Arrays;

/**
 * @author xxy
 * @create 2020 11 20 18:49
 * 选择排序：
 * 1.选择排序一共有数组大小-1轮排序
 * 2.每一轮，又是一个循环
 *  先假定当前这个数是最小的，
 *  然后和后面的每个数进行比较，如果发现比这个数更小，就重新确定最小数，并得到下标
 *   当遍历到数组最后的时候，就得到本轮最小的数和下标
 *   交换
 */
public class SelectSort {
    public static void main(String[] args) {
        int [] arr ={5,4,3,2,1};
        selectSort(arr);
        System.out.println(Arrays.toString(arr));

    }
    public static void selectSort(int[] arr){
        for(int i =0;i<arr.length-1;i++){
            int minIndex =i;
            int min =arr[i];
            for(int j=i+1;j<arr.length;j++){
                if(min>arr[j]){
                    min = arr[j];//重置min
                    minIndex =j;//重置minIndex
                }
            }//将最小值，放在arr[0],即交换
            if(minIndex!=i){
                arr[minIndex] =arr[i];
                arr[i]=min;
            }
        }
    }

}
